package com.yty.demo._4_oop;

/**
 * @author: yangtaoyao
 * @time: 2020/1/9 9:12
 * @description: 代码块
 */
public class CodeBlock {
    static {
        System.out.println("静态代码块");
    }
    {
        System.out.println("构造代码块1");
    }
    {
        System.out.println("构造代码块2");
    }

    public static void main(String[] args) {
        CodeBlock codeBlock=new CodeBlock();
        /**
         * 匿名内部类--没有类名的Person类的子类，也就是匿名的Person的子类；
         * 这种类没有类名，就不能显式的new的方法创建对象，如果要是还有在构造器中
         * 初始化属性就没有办法了，这样情况就要用代码{}初始化的工作；
         */
        Person p=new Person(){
            //用代码块代替构造方法
            {
                super.setName("李四");
            }
            @Override
            public void showName() {
                super.showName();
            }
        };
        p.showName();//李四
    }
}
